package com.demo.java.OD51_100.OD91;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Scanner;

/**
 * @author bug菌
 * @Source 公众号：猿圈奇妙屋
 * @des： 【数字涂色】问题
 * @url： https://blog.csdn.net/weixin_43970743/article/details/145657868
 */
public class OdMain {
    /**
     * solve 方法处理给定的数字数组，返回不能被任何已出现数字整除的数字的数量
     *
     * @param array 输入的数字数组
     * @return 满足条件的数字个数
     */
    public static int solve(int[] array) {
        // 对输入数组进行排序，这样可以确保我们检查数字时，从小到大的顺序处理
        Arrays.sort(array);

        // 使用 ArrayList 来存储符合条件的数字
        List<Integer> list = new ArrayList<>();

        // 遍历每个数字
        for (int i = 0; i < array.length; ++i) {
            int tmp = array[i];
            boolean status = false;

            // 遍历已经筛选出的数字，检查当前数字是否能被这些数字中的任意一个整除
            for (int num : list) {
                if (tmp % num == 0) {
                    status = true; // 如果能整除，标记为 true
                    break; // 跳出内层循环，不需要继续检查
                }
            }

            // 如果当前数字不能被任何已出现的数字整除，加入到 list 中
            if (!status) {
                list.add(tmp);
            }
        }

        // 返回符合条件的数字个数
        return list.size();
    }

    public static void main(String[] args) {
        try {
            // 创建 Scanner 对象用于获取输入
            Scanner s = new Scanner(System.in);

            // 读取数字个数
            int num = Integer.parseInt(s.nextLine());

            // 读取数字数组，并按空格分割为字符串数组
            String[] lines = s.nextLine().split(" ");

            // 将字符串数组转换为整数数组
            int[] array = new int[num];
            for (int i = 0; i < num; i++) {
                array[i] = Integer.parseInt(lines[i]);
            }

            // 调用 solve 方法，并输出结果
            System.out.println(solve(array));
        } catch (Exception e) {
            // 如果输入有误，打印异常并输出 "false"
            e.printStackTrace();
            System.out.println("false");
        }
    }
}